package cn.tedu.review;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;

/*本类用于复习集合的迭代*/
public class TestList2 {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        //向list集合添加元素
        list.add("大力娃");
        list.add("千顺娃");
        list.add("头铁娃");
        list.add("喷火娃");
        list.add("喷水娃");
        list.add("隐身娃");
        list.add("小紫娃");
        System.out.println(list);

        //集合的迭代
        //因为List集合是有序的,元素是有下标的,所有可以根据下标遍历集合
        //方式1:for循环遍历集合
        //从哪开始0  到哪结束list.size()-1 如何变化++
        for (int i = 0; i <list.size() ; i++) {
            //根据本轮循环到的下标,作为索引获取集合中对应的元素
            System.out.println(list.get(i));
        }
        System.out.println("==============方式一====================");

        //方式二:使用高效for循环迭代
        //因为普通for循环效率较低,语法复杂,格式:
        //for(每轮遍历到的元素的类型   元素名字 : 要遍历的内容){循环体}
        for(String s:list){
            System.out.println(s);
        }
        System.out.println("+++++++++++=+++==方法二++++++++++++++++++++");
        //方法三:使用从父接口Collecton中继承过来的迭代器来遍历
        //1.获取集合对应的迭代器对象
        Iterator<String> it = list.iterator();
        //2.通过刚刚获取到的迭代器,循环迭代集合中的所有元素
        while(it.hasNext()){//判断集合中是否扔有下一个元素
            System.out.println(it.next());
        }
        System.out.println("============方式三+++++++++++++++++++");
        //方式四:使用List独有的迭代器
        ListIterator<String> it2 = list.listIterator();
        while(it2.hasNext()){
            System.out.println(it2.next());
        }
        System.out.println("________________方式四+_____________________");
    }
}
